#ifndef __CAPAMETADATA_CONEXIONCAPAINDICES_H
#define __CAPAMETADATA_CONEXIONCAPAINDICES_H

/*****************************************************************************
*                     Organizacion de Datos - 75.06                          *
*                         Catedra Lic. Servetto                              *
*            Facultad de Ingenieria - Universidad de Buenos Aires            *
******************************************************************************/ 

#include "../Comun/MetadataClase.h"
#include "../Comun/Archivo.h"
#include "../Comun/ConversorDeStreams.h"
#include "../Comun/Operacion.h"


#include <sstream>
#include <fstream>
#include <iostream>
#include <string>
#include <list>


namespace CapaMetadata
{

	class ConexionCapaIndices
	{

		public:

		static void EjecutarLlamada(stringstream* entrada, stringstream* salida);
		static stringstream* ArchIndicesExisteClase(std::string NombreClase);
		static stringstream* EncabezadoArchIndices(std::string NombreClase,std::string Operacion);
		static stringstream* ArchIndicesGetMetadataClase(std::string NombreClase);
		static stringstream* ArchIndicesInsercion(std::string NombreClase,list<ClaveValor>* Valores);
		static stringstream* ArchIndicesActualizacion(std::string NombreClase,list<ClaveValor>* Valores,CondicionCompuesta* Cond);
		static stringstream* ArchIndicesSeleccion(std::string NombreClase,CondicionCompuesta* Cond,list<string>* Campos);
		static stringstream* ArchIndicesAltaClase(std::string PathCreacionClase);
		static stringstream* ArchIndicesBorrado(std::string NombreClase,CondicionCompuesta* Cond);
		static list<Registro>* LeerRegistros(std::string NombreArch,list<string>* Columnas);
		static bool LeerRegistrosBuffer(ifstream* Archivo,list<Registro>* Registros,list<string>* Columnas);

	};

}

#endif
